OpenSpec + Antigravity CLI 規範樣板手冊

本手冊定義了新專案如何透過 Antigravity CLIOpenSpec 進行「規格驅動開發 (Spec-driven Development)」,確保 AI 代理在撰寫程式碼時,嚴格遵循版控、規格同步與防呆機制。


0. 核心觀念:這些隱藏目錄是怎麼來的?

在開始複製樣板前,我們必須先理解專案根目錄下最重要的兩個資料夾:.agentopenspec 的由來與定位:

🧠 .agent 是怎麼來的?(AI 的大腦設定)

📐 openspec 目錄是怎麼來的?(專案規格的資料庫)

💡 簡單總結:
- .agent/ 決定 AI 「怎麼做事」(遵守鐵律、執行前詢問)。
- openspec/ 決定 AI 「要做什麼事」(讀取規格、確認任務)。

1. 📂 專案基礎目錄結構 (Directory Structure)

啟動新專案時,請確保建立以下目錄結構,讓「大腦」與「規格資料庫」就位:

my-new-project/
├── .agent/                  # 【AI 行為控制中心】
│   ├── AGENTS.md            # 專案鐵律 (防呆、版控、介面等實作細節規範)
│   ├── skills/              # 客製化技能 (從全域或舊專案複製過來)
│   └── workflows/           # 專屬工作流
├── openspec/                # 【規格驅動開發大腦】
│   ├── config.yaml          # OpenSpec 設定檔 (控制 AI 產出規格的語言與前提)
│   ├── specs/               # 系統主文件與規格
│   └── changes/             # 開發中的變更提案與任務
└── ... (其他專案原始碼)

2. 📝 專案鐵律樣板 (.agent/AGENTS.md)

請在新專案下建立 .agent/AGENTS.md 並貼上以下內容。這些是不可侵犯的底線,能有效防止 AI 暴走或破壞專案結構:

# 專案鐵律 (Rules)

- **執行前確認 (Execution Confirmation)**:在修改檔案、執行指令或進行其他破壞性變更之前,永遠必須先向使用者提出計畫與變更內容,並取得明確同意後才可執行。
- **嚴格的版本控制 (Strict Version Control)**:在完成任何重大更新或功能後,永遠必須主動執行 `git add .` 與 `git commit` 以確保擁有完整的版本歷史紀錄。
- **非同步任務同步 (Async Task Synchronization)**:當呼叫非同步的背景子代理或任務時(例如同步 specs),永遠必須等待子代理回傳完成訊息後,才可進行最後的 Git Commit 或分支操作。
- **防呆與錯誤處理 (Error Handling & Guardrails)**:在實作任何核心邏輯或 UI 互動時,必須主動考慮極端情況 (Edge cases),並加入適當的警告、日誌或 UI 阻擋機制。
- **流程圖文件化 (Flowchart Documentation - Spec)**:在對話過程中產生的任何系統架構、狀態機或邏輯流程圖,都必須使用 `mermaid` 語法記錄到對應的 Spec (Markdown) 文件中。
- **自動同步主文件 (Auto-Sync Master Docs)**:每當變更被歸檔 (Archived) 且規格更新後,絕對必須自動重新生成 `openspec/specs/README.md` 以及架構總覽文件,以反映最新的系統架構、能力與資料模型。
- **[選用] 強制多國語系翻譯 (Mandatory I18n Translation)**:每當新增或修改 UI 上的文字元素時,絕對必須在字典檔中為所有支援的語言提供對應的翻譯,不可直接將字串寫死在 HTML 中。

3. ⚙️ OpenSpec 專案設定檔 (openspec/config.yaml)

這是讓 AI 在撰寫計畫時(例如執行 /openspec-propose 時)能自動進入狀況的關鍵設定。請建立 openspec/config.yaml 並根據新專案微調:

schema: spec-driven

# 專案背景知識 (Project Context)
# 在建立 proposal, tasks, specs 時,AI 會自動讀取這裡的資訊。
context: |
  Project: [請填寫新專案名稱] (例如:智慧工廠 Web Dashboard)
  Tech Stack: [請填寫技術棧] (例如:Node.js, Vue3, SQLite)
  Conventions:
    - 遵守 Conventional Commits 規範 (例如:feat:, fix:, chore:)
    - 嚴格遵守 Spec-driven (規格驅動) 的開發流程
  Language Requirement:
    - CRITICAL: 所有未來產出的 OpenSpec 文件 (包含提案、任務與規格) **絕對必須** 使用繁體中文 (zh-TW) 撰寫。

# 針對各個產出物的個別限制 (Per-artifact rules)
rules:
  proposal:
    - "Must be written in Traditional Chinese (zh-TW) / 所有提案必須以繁體中文撰寫"
  tasks:
    - "Must be written in Traditional Chinese (zh-TW) / 所有任務必須以繁體中文撰寫"
  specs:
    - "Must be written in Traditional Chinese (zh-TW) / 所有規格說明書必須以繁體中文撰寫"

4. 🙈 版本控制忽略清單樣板 (.gitignore)

建議在新專案一開始就建立 .gitignore 檔案,避免不必要的大型檔案或隱私資訊進入版本控制。您可以根據專案需求複製以下通用範本:

venv/
node_modules/
__pycache__/
*.pyc
.DS_Store
.env
logs/
records/
*.db
*.log
*.csv

5. 🚀 快速啟動檢核表 (Quick Start Checklist)

未來拿到任何新專案,只要跟著以下步驟走:


文件基於工具版本:openspec 1.5.0,agy 1.0.15